%pylab inline
import numpy as np # convert list to array
import matplotlib.pyplot as plt
from ipywidgets import * #interaktivitáshoz szükséges függvények
from mpl_toolkits.mplot3d import * #3D-s ábrák alcsomagja
#from scipy import special
from scipy.special import jn,fresnel
$U(\mathbf{k}) = S_N(\mathbf{k}) F(\mathbf{k})$, ahol
$S_N(\mathbf{k}) = \sum_{\mathbf{R}} e^{i \mathbf{k}\mathbf{R}}$ és $F(\mathbf{k}) = \int_{1r\acute es} d^2 \mathbf{s} T(\mathbf{s})\, e^{i \mathbf{k}\mathbf{s}}$, ahol $T(\mathbf{s})$ a rés áteresztő kepessége, tipikusan 1 a résen belul.
# Az abra kimentesehez az alabbiakat a plt.show() ele kell tenni!!!
#savefig('fig_rainbow_p2_1ray.pdf'); # Abra kimentese
#savefig('fig_rainbow_p2_1ray.eps'); # Abra kimentese
# Abra es fontmeretek
xfig_meret= 9 # 12 nagy abrahoz
yfig_meret= 6 # 12 nagy abrahoz
xyticks_meret= 15 # 20 nagy abrahoz
xylabel_meret= 20 # 30 nagy abrahoz
legend_meret= 17 # 30 nagy abrahoz
def int_N_res(x,k,d,Nr,a):
amp_1=int_1res(x,k,d)[0]
amp_Nr = amp_1*sin(x*k/2*a*Nr)/sin(x*k/2*a)/Nr
#amp_Nr = sin(x*k/2*a*Nr)/sin(x*k/2*a)
int_Nr=(abs(amp_Nr))**2
return(int_Nr)
def int_1res(x,k,d):
amp = (sin(k*d*x/2))/(k*d*x/2)
intenz = (abs(amp))**2
return(amp,intenz)
def int_kor(x):
tmp = 4*(jn(1,x)/x)**2
return(tmp)
def struct_fact_1dim(u,Rp):
Nr = len(Rp)
struct=0+0*1j
for i in range(Nr):
struct=struct+exp(1j*2*pi*u*Rp[i])
struct2=abs(struct/Nr)**2
return(struct2)
def struct_fact(u,v,Rp):
Nr = len(Rp)
struct=0+0*1j
for i in range(Nr):
struct=struct+exp(1j*2*pi*(u*Rp[i][0]+v*Rp[i][1]))
return(struct/Nr)
def rajz_2dim_kor(Rp, cimek, uv_size, intmax):
#figsize(xfig_meret,yfig_meret)
# direct racs
t = arange(0.0, 2.0*pi, 0.01)
figsize(12,8)
subplot(1,4,1,aspect=1)
scale=0.5
[plot(scale*Rp_[0]+ Rpa*cos(t),scale*Rp_[1]+ Rpa*sin(t), color='k', lw=3) for Rp_ in Rp]
title(cimek[0], fontsize=16)
axis('off');
# egy res diffrakcioja
Nminta = 200 # a (kx,ky) mintaveteli szama kx es ky menten, kulon-kulon
epsi=10**(-7) # azert kell,mert a kor alaku res intenzitasa divergal a kx=ky=0-nal,
# csak hataresetben ad helyes erteket.
print("első minimum = sqrt(u_1^2+v1^2)= ", 1.22/2/Rpa)
#xyr = 20.0 # 12.1 # maximalis kx,ky tartomany, -xyr < kx,ky < xyr
xyr = uv_size[0]
u,v = meshgrid(linspace(-xyr,xyr,Nminta),linspace(-xyr,xyr,Nminta)) #mintavételezési pontok legyártása
amp2kor=int_kor(2*pi*Rpa*sqrt((u+epsi)**2+v**2)) #függvény kiértékelés
subplot(1,4,2,aspect=1)
#intmax=0.005
contourf(u,v,amp2kor,levels=linspace(0.,intmax[0],10),cmap='gray')
title(cimek[1],fontsize=16);
xlabel(r'$u$',fontsize=20);
ylabel(r'$v$',fontsize=20);
#colorbar();
# szerkezeti tenyezo rajzolas
xyr = uv_size[1]
Nminta=200
u,v = meshgrid(linspace(-xyr,xyr,Nminta),linspace(-xyr,xyr,Nminta)) #mintavételezési pontok
amp2struct=abs(struct_fact(u,v,Rp))**2
subplot(1,4,3,aspect=1)
#intmax=0.005
contourf(u,v,amp2struct,levels=linspace(0.,intmax[1],10),cmap='gray')
title(cimek[2],fontsize=16);
xlabel(r'$u$',fontsize=20);
ylabel(r'$v$',fontsize=20);
#colorbar();
# teljes diffracios kep rajzolas
subplot(1,4,4,aspect=1)
xyr = uv_size[2]
u,v = meshgrid(linspace(-xyr,xyr,Nminta),linspace(-xyr,xyr,Nminta)) #mintavételezési pontok legyártása
amp2=int_kor(2*pi*Rpa*sqrt((u+epsi)**2+v**2))*abs(struct_fact(u,v,Rp))**2 #függvény kiértékelés
#amp2=int_kor(Rpa*sqrt((u+epsi)**2+v**2))*abs(struct_fact(u,v,Rp))**2 #függvény kiértékelés
#intmax=0.01
contourf(u,v,amp2,levels=linspace(0.,intmax[2],10),cmap='gray')
title(cimek[3],fontsize=16);
xlabel(r'$u$',fontsize=20);
ylabel(r'$v$',fontsize=20);
#colorbar();
tight_layout();
$a$ a rácsállandó, $d$ egy rés szélessége.
$\frac{U(\alpha)}{U_0} = \frac{\sin\left(\pi u N \right)}{\sin\left(\pi u \right)}\, U_{1r\acute{e}s}(\alpha)$, ahol
$U_{1r\acute{e}s}(\alpha) = \frac{\sin\left(\frac{k}{2} d \sin \alpha\right)}{\frac{k}{2} d \sin \alpha}= \frac{\sin \pi u \frac{d}{a}}{ \pi u \frac{d}{a}}$, és
$2\pi \, u= k a \sin \alpha$, $k = \frac{2\pi}{\lambda}$ a hullámszám.
lam =1;
d = 7*lam;
a = 3*d
apd=a/d
Nr=5;
#Nr=17;
print('Rácspontok száma = ',Nr, '\n')
mrange=[-4,-3,-2,-1,0,1,2,3,4]
xm= 1.1*mrange[-1]*lam/a
sinvec= linspace(-xm,xm,700)
k=2*pi/lam
intvec=int_N_res(sinvec,k,d,Nr,a)
int1res=int_1res(sinvec,k,d)[1]
intracs=(abs((sin(sinvec*k/2*a*Nr)/sin(sinvec*k/2*a)/Nr)))**2
sinzero=[]
[sinzero.append(m*lam/a) for m in mrange]
xs=[]
for m in mrange:
if (m !=0):
xs.append(str(m) +r'$\,\frac{\lambda}{a}$')
else:
xs.append(str(m))
figsize(8,9)
subplot(3,1,1)
#figsize(xfig_meret,yfig_meret)
plot(sinvec,intracs, 'k-');
labels = xs
xticks(sinzero,labels,fontsize=20);
title(r'$\mathrm{Szerkezeti \,\, tényező, \,\,\, structure \,\, factor}$',fontsize=20)
axis('tight')
xlim=(-xm,xm)
subplot(3,1,2)
plot(sinvec,int1res, 'r--');
labels = xs
xticks(sinzero,labels,fontsize=20);
title(r'$\mathrm{Alaktényező, \,\,\, form \,\,factor}$',fontsize=20)
axis('tight')
xlim=(-xm,xm)
subplot(3,1,3)
plot(sinvec,intvec, 'b-', label='totál');
plot(sinvec,int1res, 'r--', lw=2, label='1 rés');
labels = xs
xticks(sinzero,labels,fontsize=20);
#title('Optikai rács',fontsize=20)
title(str(Nr) + ' darab d széles rés egydimenzióban elhelyezve \n a/d = '+ str(apd),fontsize=16);
legend(loc='upper right',fontsize = 15)
axis('tight')
xlim=(-xm,xm)
grid();
tight_layout();
Gnädig Péter, Honyek Gyula, Vigh Máté: 333+ furfangos feladat fizikából, Typotex Kiadó, 2017 könyvből
Egy furcsa optikai rácson a rések nem egyenlÅ‘ közönként helyezkednek el: a szomszédos rések távolsága felváltva $d$ és $3d$. Milyen elhajlási kép alakul ki az $L$ távolságra elhelyezett ernyÅ‘n, ha a rácsot (annak sÃkjára merÅ‘legesen) $\lambda$ hullámhosszúságú lézerfénnyel világÃtjuk meg? (A rések szélessége egyforma és sokkal kisebb a távolságuknál, valamint $\lambda \ll d$.)
# Ncell darab racspont generalasa
Ncell=15 # minel nagyobb, annal elesebbek lesznek a diffrakcios csucsok.
Rp = []
for i in range(Ncell):
Rp.append(i)
for i in range(Ncell):
Rp.append(i+1/4)
print('Rácspontok száma = 2*Ncell = ',len(Rp), '\n')
#print('Rácspontok koordinátája, Rp = ',around(Rp,3))
print('Rácspontok koordinátája, Rp = ',Rp)
xyr=4.1
Nminta=700
uvec=linspace(-xyr,xyr,Nminta)
amp2=struct_fact_1dim(uvec,Rp)
figsize(10,5)
plot(uvec,amp2, 'b-',label='totál')
plot(uvec,(cos(pi/4*uvec))**2, 'r--', label='1 rés')
xlabel(r'$x=\frac{\lambda L}{a}\, u = \frac{\lambda L}{4d}\, u$',fontsize=20)
axis('tight')
xlim=(-xyr,xyr)
legend(loc='upper right',fontsize = 15)
grid();
A rács elemi rácsvektora (rácsállandó egységekben): $\mathbf{a}_1, \mathbf{a}_2 $.
$\mathbf{k} = (k_x,k_y,k_z)= (k_x,k_y,k \cos \vartheta)$, ahol $k = |\mathbf{k}|= \frac{2\pi}{\lambda}$ és $\vartheta $ a $\mathbf{k}$ iránya a rácsra merÅ‘leges $z$ tengelyhez viszonyÃtva.
Új paraméterezés: $(k_x,k_y) = \frac{2\pi}{a}\, (u,v)$. Ekkor
$\sqrt{k_x^2+k_y^2}= k \sin\vartheta = \frac{2\pi}{a}\, \sqrt{u^2+v^2}$ és
$k R \sin\vartheta = 2\pi\, \frac{R}{a}\, \sqrt{u^2+v^2} $, ez kerül be az egy rés diffrakcióját leÃró képletbe.
Végül a kétdimenziós diffrakciós képet $(u,v)$ függvényében ábrázoljuk.
Nx, Ny darab az x, y irányban
# R ---> a kor alaku res sugara
# a ---> racsallando
Nx = 7 # Nx ---> elemi cellak szama az a1 vektor iranyaban
Ny = Nx # Ny ---> elemi cellak szama az a2 vektor iranyaban
a1,a2=[1,0], [0,1] # elemi rácsvektor rácsállandó egységekben
Rpa=0.2 # Rpa ---> R/a
# Rp racspontok generalasa (racsallando egysegekben):
Rp=[]
for n1 in range(Nx):
for n2 in range(Ny):
Rp.append([n1*a1[0]+n2*a2[0],n1*a1[1]+n2*a2[1]])
print('Rácspontok száma = ',len(Rp), '\n')
print('Rácspontok koordinátája, Rp = ',Rp)
Nminta = 500 # a (kx,ky) mintaveteli szama kx es ky menten, kulon-kulon
xyr = 3.1 # maximalis kx,ky tartomany, -xyr < kx,ky < xyr
epsi=10**(-7) # azert kell,mert a kor alaku res intenzitasa divergal a kx=ky=0-nal,
# csak hataresetben ad helyes erteket.
xu=linspace(-xyr,xyr,Nminta) # kx mintaveteli pontok generalasa, ky=0 most.
figsize(8,6)
plot(xu,int_kor(2*pi*Rpa*sqrt((xu+epsi)**2+0**2)),'r--',lw=2, label='1 rés')
plot(xu,abs(struct_fact(xu,0,Rp))**2, 'g-',label='struct. factor')
plot(xu,int_kor(2*pi*Rpa*sqrt((xu+epsi)**2+0**2))*abs(struct_fact(xu,0,Rp))**2, lw=1,label='totál')
#title('Optikai négyzetrács, Nx,Ny =' + str(Nx)+', '+str(Ny));
title('Optikai négyzetrács, Nx,Ny = ' + str(Nx)+', '+str(Ny)+'\n R/a = '+ str(Rpa),fontsize=16);
xlabel(r'$u$',fontsize=20, rotation=0)
axis('tight')
legend(loc='upper right',fontsize = 15)
xlim=(-xyr,xyr)
ylim(0,1.05)
grid();
cimek=['Direkt rács','Egy kör alakú rés','Szerkezeti faktor','Diffrakciós kép']
# R ---> a kor alaku res sugara
# a ---> racsallando
Nx = 5 # Nx ---> elemi cellak szama az a1 vektor iranyaban
Ny = Nx # Ny ---> elemi cellak szama az a2 vektor iranyaban
a1,a2=[1,0], [0,1] # elemi rácsvektor rácsállandó egységekben
Rpa=0.1 # Rpa ---> R/a
# Rp racspontok generalasa (racsallando egysegekben):
Rp=[]
for n1 in range(Nx):
for n2 in range(Ny):
Rp.append([n1*a1[0]+n2*a2[0],n1*a1[1]+n2*a2[1]])
print('Rácspontok száma $x$ irányban = ',Nx, '\n')
print('Rácspontok száma $y$ irányban = ',Ny, '\n')
print('Rácspontok száma = ',len(Rp), '\n')
print('Rácspontok koordinátája, Rp = ',Rp, '\n')
xyr = [20,5,17]
intmax = [0.005,0.1, 0.0025]
rajz_2dim_kor(Rp, cimek, xyr, intmax)
cimek=['Direkt rács','Egy kör alakú rés','Szerkezeti faktor','Diffrakciós kép']
# R ---> a kor alaku res sugara
# a ---> racsallando
Rpa=0.1 # Rpa ---> R/a
# Rp racspontok generalasa (racsallando egysegekben), most 2 racspont van:
Rp=[[0, 0], [1, 0]]
print('Rácspontok száma = ',len(Rp), '\n')
print('Rácspontok koordinátája, Rp = ',Rp)
xyr = [20,5,20]
intmax = [0.005,0.05, 0.005]
rajz_2dim_kor(Rp, cimek, xyr, intmax)
xyr=12.
Nminta=200
u,v = meshgrid(linspace(-xyr,xyr,Nminta),linspace(-xyr,xyr,Nminta)) #mintavételezési pontok legyártása
epsi=10**(-7)
amp2=int_kor(2*pi*Rpa*sqrt((u+epsi)**2+v**2))*abs(struct_fact(u,v,Rp))**2 #függvény kiértékelés
print("első minimum = sqrt(u_1^2+v1^2)= ", 1.22/2/Rpa)
figsize(12,8)
fig = plt.figure()
ax = fig.gca(projection='3d')
surf = ax.plot_surface(u, v, amp2, rstride=1, cstride=1, cmap=cm.coolwarm,
linewidth=0, antialiased=True)
title('Két kör alakú rés, R/a = '+ str(Rpa),fontsize=16);
xlabel(r'$u$',fontsize=20);
ylabel(r'$v$',fontsize=20);
cimek=['Direkt rács','Egy kör alakú rés','Szerkezeti faktor','Diffrakciós kép']
# R ---> a kor alaku res sugara
# a ---> racsallando, egysegnyi
Rpa=0.1 # Rpa ---> R/a
# Rp racspontok generalasa (racsallando egysegekben), most 2 racspont van:
Rp=[[0, 0], [0, 1]]
print('Rácspontok száma = ',len(Rp), '\n')
print('Rácspontok koordinátája, Rp = ',Rp)
xyr = [20,5,20]
intmax = [0.005,0.05, 0.005]
rajz_2dim_kor(Rp, cimek, xyr, intmax)
cimek=['Direkt rács','Egy kör alakú rés','Szerkezeti faktor','Diffrakciós kép']
# R ---> a kor alaku res sugara
# a ---> racsallando, egysegnyi
Rpa=0.1 # Rpa ---> R/a
# Rp racspontok generalasa (racsallando egysegekben), most 2 racspont van:
Rp=[[0, 0], [1, 1]]
print('Rácspontok száma = ',len(Rp), '\n')
print('Rácspontok koordinátája, Rp = ',Rp)
xyr = [20,5,12]
intmax = [0.005,0.05, 0.005]
rajz_2dim_kor(Rp, cimek, xyr, intmax)
# R ---> a kor alaku res sugara
# a ---> racsallando
a1,a2=[1,0], [0,1] # elemi rácsvektor rácsállandó egységekben
Rpa1=0.1 # Rpa ---> R/a
Rpa2=0.2 # Rpa ---> R/a
# Rp racspontok generalasa (racsallando egysegekben), most 2 racspont van:
Rp=[[0, 0], [1, 0]]
#Rp=[[0, 0], [0, 1]]
print('Rácspontok száma = ',len(Rp), '\n')
print('Rácspontok koordinátája, Rp = ',Rp, '\n')
Nminta = 500 # a (kx,ky) mintaveteli szama kx es ky menten, kulon-kulon
epsi=10**(-7) # azert kell,mert a kor alaku res intenzitasa divergal a kx=ky=0-nal,
# csak hataresetben ad helyes erteket.
print("első minimum = sqrt(u_1^2+v1^2)= ", 1.22/2/Rpa)
xyr = 20.0 # 12.1 # maximalis kx,ky tartomany, -xyr < kx,ky < xyr
u,v = meshgrid(linspace(-xyr,xyr,Nminta),linspace(-xyr,xyr,Nminta)) #mintavételezési pontok legyártása
amp2kor=int_kor(2*pi*Rpa1*sqrt((u+epsi)**2+v**2)) #függvény kiértékelés
figsize(14,8)
#figsize(xfig_meret,yfig_meret)
# direct racs
t = arange(0.0, 2.0*pi, 0.01)
subplot(1,3,1,aspect=1)
plot(Rp[0][0]+ Rpa2*cos(t),Rp[0][1]+ Rpa2*sin(t), color='k', lw=3)
plot(Rp[1][0]+ Rpa1*cos(t),Rp[1][1]+ Rpa1*sin(t), color='k', lw=3)
axis('off');
subplot(1,3,2,aspect=1)
intmax=0.005
contourf(u,v,amp2kor,levels=linspace(0.,intmax,10),cmap='gray')
title('Egy kör alakú rés',fontsize=16);
xlabel(r'$u$',fontsize=20);
ylabel(r'$v$',fontsize=20);
#colorbar();
subplot(1,3,3,aspect=1)
Nminta = 500
xyr=17
u,v = meshgrid(linspace(-xyr,xyr,Nminta),linspace(-xyr,xyr,Nminta)) #mintavételezési pontok legyártása
x1=2*pi*Rpa1*sqrt((u+epsi)**2+v**2)
x2=2*pi*Rpa2*sqrt((u+epsi)**2+v**2)
amp= 2*jn(1,x1)/x1*exp(1j*2*pi*(u*Rp[0][0]+v*Rp[0][1]))\
+2*jn(1,x2)/x2*exp(1j*2*pi*(u*Rp[1][0]+v*Rp[1][1]))
amp2=(abs(amp/2))**2
intmax=0.005
contourf(u,v,amp2,levels=linspace(0.,intmax,10),cmap='gray')
title('Két kör alakú rés, \n $R_1/a = $'+ str(Rpa1) +' and $R_2/a = $' + str(Rpa2),fontsize=16);
xlabel(r'$u$',fontsize=20);
ylabel(r'$v$',fontsize=20);
#colorbar();
tight_layout;
cimek=['Direkt rács','Egy kör alakú rés','Szerkezeti faktor','Diffrakciós kép']
# R ---> a kor alaku res sugara
# a ---> racsallando, egysegnyi
Rpa=0.1 # Rpa ---> R/a
# Rp racspontok generalasa (racsallando egysegekben):
Rp=[[0, 0], [1, 0],[0,1],[1,1]]
print('Rácspontok száma = ',len(Rp), '\n')
print('Rácspontok koordinátája, Rp = ',Rp)
xyr = [20,5,15]
intmax = [0.005,0.05, 0.005]
rajz_2dim_kor(Rp, cimek, xyr, intmax)
cimek=['Direkt rács','Egy kör alakú rés','Szerkezeti faktor','Diffrakciós kép']
# R ---> a kor alaku res sugara
# a ---> racsallando, egysegnyi
Rpa=0.1 # Rpa ---> R/a
# Rp racspontok generalasa (racsallando egysegekben):
Rp=[[0, 0], [1, 0],[1/2,sqrt(3)/2]]
print('Rácspontok száma = ',len(Rp), '\n')
print('Rácspontok koordinátája, Rp = ',Rp)
xyr = [20,5,16]
intmax = [0.005,0.2, 0.005]
rajz_2dim_kor(Rp, cimek, xyr, intmax)
cimek=['Direkt rács','Egy kör alakú rés','Szerkezeti faktor','Diffrakciós kép']
# R ---> a kor alaku res sugara
# a ---> racsallando, egysegnyi
Rpa=0.1 # Rpa ---> R/a
# Rp racspontok generalasa (racsallando egysegekben):
Rp=[[0, 0], [1, 0],[-1,0],[0, 1],[0, -1]]
print('Rácspontok száma = ',len(Rp), '\n')
print('Rácspontok koordinátája, Rp = ',Rp)
xyr = [20,5,15]
intmax = [0.005,0.2, 0.005]
rajz_2dim_kor(Rp, cimek, xyr, intmax)
cimek=['Direkt rács','Egy kör alakú rés','Szerkezeti faktor','Diffrakciós kép']
# R ---> a kor alaku res sugara
# a ---> racsallando, egysegnyi
Rpa=0.1 # Rpa ---> R/a
# Rp racspontok generalasa (racsallando egysegekben):
Rp=[[0, 0], [1, 1],[-1,1],[-1, -1],[1, -1]]
print('Rácspontok száma = ',len(Rp), '\n')
print('Rácspontok koordinátája, Rp = ',Rp)
xyr = [20,5,15]
intmax = [0.005,0.3, 0.005]
rajz_2dim_kor(Rp, cimek, xyr, intmax)
cimek=['Direkt rács','Egy kör alakú rés','Szerkezeti faktor','Diffrakciós kép']
# R ---> a kor alaku res sugara
# a ---> racsallando, egysegnyi
Rpa=0.1 # Rpa ---> R/a
# Rp racspontok generalasa (racsallando egysegekben):
Rp=[[0, 0], [1, 0],[0, 1],[1, 1],[0,-1],[0,-2]]
print('Rácspontok száma = ',len(Rp), '\n')
print('Rácspontok koordinátája, Rp = ',Rp)
xyr = [20,5,15]
intmax = [0.005,0.2, 0.005]
rajz_2dim_kor(Rp, cimek, xyr, intmax)
cimek=['Direkt rács','Egy kör alakú rés','Szerkezeti faktor','Diffrakciós kép']
# R ---> a kor alaku res sugara
# a ---> racsallando, egysegnyi
Rpa=0.1 # Rpa ---> R/a
# Rp racspontok generalasa (racsallando egysegekben):
Rp=[[0, 0], [1, 0],[0, 1],[0, -1],[1,1], [1,-1],[-1,0],[2,0]]
print('Rácspontok száma = ',len(Rp), '\n')
print('Rácspontok koordinátája, Rp = ',Rp)
xyr = [20,5,15]
intmax = [0.005,0.2, 0.005]
rajz_2dim_kor(Rp, cimek, xyr, intmax)
cimek=['Direkt rács','Egy kör alakú rés','Szerkezeti faktor','Diffrakciós kép']
# R ---> a kor alaku res sugara
# a ---> racsallando, egysegnyi
Rpa=0.1 # Rpa ---> R/a
# Rp racspontok generalasa (racsallando egysegekben):
Rp=[[0, 0], [0, 1],[0, -1], [1, 1],[1, -1]]
print('Rácspontok száma = ',len(Rp), '\n')
print('Rácspontok koordinátája, Rp = ',Rp)
xyr = [20,5,15]
intmax = [0.005,0.2, 0.005]
rajz_2dim_kor(Rp, cimek, xyr, intmax)
cimek=['Direkt rács','Egy kör alakú rés','Szerkezeti faktor','Diffrakciós kép']
# R ---> a kor alaku res sugara
# a ---> racsallando, egysegnyi
Rpa=0.1 # Rpa ---> R/a
# Rp racspontok generalasa (racsallando egysegekben):
Rp=[[0, 0], [-1, 0],[1, 0],[0, -1],[0,-2]]
print('Rácspontok száma = ',len(Rp), '\n')
print('Rácspontok koordinátája, Rp = ',Rp)
xyr = [20,5,15]
intmax = [0.005,0.2, 0.005]
rajz_2dim_kor(Rp, cimek, xyr, intmax)
cimek=['Direkt rács','Egy kör alakú rés','Szerkezeti faktor','Diffrakciós kép']
# R ---> a kor alaku res sugara
# a ---> racsallando, egysegnyi
Rpa=0.1 # Rpa ---> R/a
# Rp racspontok generalasa (racsallando egysegekben):
Rp=[[0, 0], [-1, 1],[1, 1],[0, -2]]
print('Rácspontok száma = ',len(Rp), '\n')
print('Rácspontok koordinátája, Rp = ',Rp)
xyr = [20,5,15]
intmax = [0.005,0.4, 0.008]
rajz_2dim_kor(Rp, cimek, xyr, intmax)
cimek=['Direkt rács','Egy kör alakú rés','Szerkezeti faktor','Diffrakciós kép']
# R ---> a kor alaku res sugara
# a ---> racsallando, egysegnyi
Rpa=0.1 # Rpa ---> R/a
# Rp racspontok generalasa (racsallando egysegekben):
Nr=5 # sokszog szama
Rp=[[3*cos(2*pi*n/Nr),3*sin(2*pi*n/Nr)] for n in range(Nr) ]
print('Rácspontok száma = ',len(Rp), '\n')
print('Rácspontok koordinátája, Rp = ',around(Rp,2))
xyr = [20,5,15]
intmax = [0.005,0.5, 0.005]
rajz_2dim_kor(Rp, cimek, xyr, intmax)
cimek=['Direkt rács','Egy kör alakú rés','Szerkezeti faktor','Diffrakciós kép']
# R ---> a kor alaku res sugara
# a ---> racsallando, egysegnyi
Rpa=0.1 # Rpa ---> R/a
# Rp racspontok generalasa (racsallando egysegekben):
Nr=5 # sokszog szama
phi=pi/2 # sokszog elforgatasa
Rp=[[3*cos(2*pi*n/Nr+phi),3*sin(2*pi*n/Nr+phi)] for n in range(Nr) ]
Rp.append([0,0])
print('Rácspontok száma = ',len(Rp), '\n')
print('Rácspontok koordinátája, Rp = ',around(Rp,2))
xyr = [20,5,15]
intmax = [0.005,0.5, 0.005]
rajz_2dim_kor(Rp, cimek, xyr, intmax)
3*random.random()
cimek=['Direkt rács','Egy kör alakú rés','Szerkezeti faktor','Diffrakciós kép']
# R ---> a kor alaku res sugara
# a ---> racsallando, egysegnyi
Rpa=0.1 # Rpa ---> R/a
# Rp racspontok generalasa (racsallando egysegekben):
Nr=5 # racspontok szama
Rp = []
[Rp.append([3*random.random(), 3*random.random()]) for i in range(Nr)]
print('Rácspontok száma = ',len(Rp), '\n')
print('Rácspontok koordinátája, Rp = ',around(Rp,2))
xyr = [20,5,15]
intmax = [0.005,0.4, 0.005]
rajz_2dim_kor(Rp, cimek, xyr, intmax)